package com.pfzy.utildemo.activity.websocket;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.os.Build;
import android.util.Log;

//public class NetworkStatusMonitor {
//    private Context appContext;
//    private static ConnectivityManager connectivityService = (ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE);
//    private Boolean isRegistered = false;
//    private Boolean isAvailable = false;
//
//    private ConnectivityManager.NetworkCallback mCallback = new ConnectivityManager.NetworkCallback() {
//        public void onAvailable(Network network) {
//            // 联网后开始重连
//            isAvailable = true;
//            Log.e("", "onAvailable");
//        }
//
//        public void onLost(Network network) {
//            // 断网停止重连
//            isAvailable = false;
//            Log.e("", "onLost");
//        }
//    };
//
//
//    public void register(ConnectivityManager.NetworkCallback callback) {
//        connectivityService.registerNetworkCallback(new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build(), callback);
//        if (!isRegistered) {
//            isRegistered = true;
//            register(callback = mCallback);
//        }
//    }
//
//    /**
//     * 判断网络是否连接
//     */
//    public static Boolean isNetworkConnected() {
//        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
//            NetworkInfo mNetworkInfo = connectivityService.getActiveNetworkInfo();
//            if (mNetworkInfo != null) {
//                return mNetworkInfo.isAvailable();
//            }
//        } else {
//            Network network = connectivityService.getActiveNetwork();
//            if (network == null) {
//                return false;
//            }
//
//            NetworkCapabilities status = connectivityService.getNetworkCapabilities(network);
//            if (status == null) {
//                return false;
//            }
//
//            if (status.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
//                return true;
//            }
//        }
//        return false;
//    }
//}

//    object NetworkStatusMonitor {
//private set
//        var isUnAvailable = false
//private set
//        get() {
//        return !isAvailable
//        }

//
//
//
//        fun unregister(callback: ConnectivityManager.NetworkCallback) {
//        connectivityService.unregisterNetworkCallback(callback)
//        }
//

//
//        /**
//         * 判断是否是WiFi连接
//         */
//        fun isWifiConnected(context: Context?): Boolean {
//        if (context != null) {
//        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
//        val mWiFiNetworkInfo = connectivityService
//        .getNetworkInfo(ConnectivityManager.TYPE_WIFI)
//        if (mWiFiNetworkInfo != null) {
//        return mWiFiNetworkInfo.isAvailable
//        }
//        } else {
//        val network = connectivityService.activeNetwork ?: return false
//        val status = connectivityService.getNetworkCapabilities(network)
//        ?: return false
//        if (status.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
//        return true
//        }
//        }
//        }
//        return false
//        }
//
//        /**
//         * 判断是否是数据网络连接
//         */
//        fun isMobileConnected(context: Context?): Boolean {
//        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
//        val mMobileNetworkInfo = connectivityService
//        .getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
//        if (mMobileNetworkInfo != null) {
//        return mMobileNetworkInfo.isAvailable
//        }
//        } else {
//        val network = connectivityService.activeNetwork ?: return false
//        val status = connectivityService.getNetworkCapabilities(network)
//        ?: return false
//        status.transportInfo
//        if (status.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
//        return true
//        }
//        }
//        return false
//        }
//
//        }
//
